草庐IT

VBScript 条件语句

全部标签

windows - 如何使用 VBScript 指定远程桌面连接的地址?

我想使用VBScript将地址注入(inject)“远程桌面连接”提示。我被特别告知我必须雇用WindowsAutomationAPI这样做,但在阅读文档后我没有找到任何可以用于VBScript的东西。我该如何继续?PS:正如Helen和thisthread指出的那样目前不支持VBScript访问UIAutomationAPI。 最佳答案 您在这里实际上不需要GUI自动化。要指定要连接的计算机,只需启动mstsc使用/v命令行参数,例如:CreateObject("WScript.Shell").Run"mstsc/v:comput

windows - 拖放操作调用的 vbscript 中的当前工作目录

当我试图为我的批处理脚本获取提升权限时,当我发现两个相关的SO问题时HowtorequestAdministratoraccessinsideabatchfileHowcanIauto-elevatemybatchfile,sothatitrequestsfromUACadministratorrightsifrequired?...这导致了部分有效的答案。出于某种原因,我在VBS脚本中为包含空格的文件路径参数传递命令行时遇到问题,因此我尝试将解决方案分成3个部分并集中在内部(VBS)步骤,然后通过调用添加最后一步尽管与VBS脚本位于同一文件夹中,但无法找到该VBS的批处理。我发现拖放

c++ - 开关语句使用

我应该使用这种形式的switch语句吗:switch(msg){caseWM_LBUTTONDOWN:{charszFileName[MAX_PATH];HINSTANCEhInstance=GetModuleHandle(NULL);GetModuleFileName(hInstance,(LPWCH)szFileName,MAX_PATH);MessageBox(hwnd,(LPCWSTR)szFileName,L"Thisprogramis:",MB_OK|MB_ICONINFORMATION);}break;caseWM_CLOSE:DestroyWindow(hwnd);br

windows - 从 VBScript 中的 cmd/c 命令获取返回值

在VBScript中,内置的Shell.Run方法不提供输出重定向,因此必须使用以下解决方法:RunningcommandlinesilentlywithVbScriptandgettingoutput?DimretValretVal=WshShell.Run("cmd/c""commandGoesHere"">c:\temp\output.txt",0,True)然而,returnValue将具有cmd的返回值,而不是commandGoesHere的返回值。我以为我可以检查shell.Environment("ERRORLEVEL")但大概这也是cmd的返回值,而不是commandG

c++ - Windows SDK 是否限制符合条件的 Windows 版本?

我们正在迁移到VisualStudio2017,VS2017提示我们将项目重新定位为两件事:WindowsSDK版本和平台工具集。目前我们的应用程序可以在较旧的Windows版本(至少到Server2003,可能更旧)上运行,我们需要保留相同的版本(我知道它们不再受支持,但这是客户的要求)。假设我们的代码(全部是C++,以防有所不同)不使用任何仅在较新版本的Windows上可用的API,将重新定位到较新版本的WindowsSDK限制或限制我们的应用程序将在哪些Windows版本上运行?虽然在这个主题上,将重新定位到更新版本的WindowsSDK有任何优点或缺点(例如性能)(再次假设我们

windows - 不接受扩展变量作为条件?

此代码的目标是解析一个简单的文本文件并检查每行的第一个单词是否与测试变量匹配。setlocalenabledelayedexpansionsettestvar=pc3for/f"tokens=*"%%ain(input.txt)do(for/f"tokens=1-2delims="%%Gin("%%a")dosetpc=%%G&setvers=%%H&echo"%testvar%"&echo"!pc!"if"!pc!"=="testvar"(echoYes)ELSE(echono))pause本例中的input.txt如下:pc1ver1pc2ver1pc3ver2并且输出始终为“否”

windows - vbscript 下载文件(绕过无效证书错误)

dimxHttp:SetxHttp=createobject("microsoft.xmlhttp")dimbStrm:SetbStrm=createobject("Adodb.Stream")xHttp.Open"GET","https://www.website.com/apps/CertMgr.Exe",FalsexHttp.SendwithbStrm.type=1'//binary.open.writexHttp.responseBody.savetofile"c:\CertMgr.Exe",2'//overwriteendwith使用上面的代码,我试图从安全站点下载文件以自动

c++ - 递减原子计数器 - 但 <only> 在一个条件下

我想在这方面实现一些东西:inlinevoidDecrementPendingWorkItems(){if(this->pendingWorkItems!=0)//makesurewedon'tunderflowandgetaveryhighnumber{::InterlockedDecrement(&this->pendingWorkItems);}}我怎样才能做到这两个操作作为一个block都是原子的,而不使用锁? 最佳答案 你可以直接查看InterlockedDecrement()的结果如果它恰好是负数(或者Interlock

windows - 我可以对 JScript (.js) 或 VBScript (.vbs) 文件进行数字签名吗?

我知道可以使用signtool签署Windowsbinary可执行文件.所以一直以来我都假设不能签署任何由WindowsScriptHost解释的文件,例如JScript(.js)或VBScript(.vbs),因为它们只是文本文件。但是今天,在打开我从我的网站下载的.js文件时,我收到了这个警告:那么这是否意味着有一种方法可以对那些.js/.vbs文件进行签名?如果是,那又如何? 最佳答案 只是为了完成我原来的问题。答案是是的。据我所知,可以使用Microsoft的SignTool对以下文件进行签名:显然是Windows可执行文件

c# - 线程启动期间的竞争条件?

我正在运行以下代码来启动我的线程,但它们没有按预期启动。出于某种原因,一些线程以相同的对象开始(有些甚至没有开始)。如果我尝试调试,它们会启动得很好(我单击F10单步执行代码增加了额外的延迟)。这些是我的表单应用程序中的功能:privatevoidstartWorkerThreads(){intnumThreads=config.getAllItems().Count;inti=0;foreach(ConfigurationItemtmpIteminconfig.getAllItems()){i++;vart=newThread(()=>WorkerThread(tmpItem,i))